Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / core / ui / src / main / kotlin / org / meshtastic / core / ui / component / AutoLinkText.kt

Displaying Raw • Download

core/ui/src/main/kotlin/org/meshtastic/core/ui/component/AutoLinkText.kt 1c3784235e7e20ed88e054097d2e7addbff92dc3 (1c378423) Text, 3.24 KB

T8b949e/*
* Copyright (c) 2025 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

Tff7b72package T7ee787org.meshtastic.core.ui.component

Tff7b72import T7ee787android.text.Spannable
Tff7b72import T7ee787android.text.Spannable.Factory
Tff7b72import T7ee787android.text.style.URLSpan
Tff7b72import T7ee787android.text.util.Linkify
Tff7b72import T7ee787androidx.compose.material3.Text
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.graphics.Color
Tff7b72import T7ee787androidx.compose.ui.text.AnnotatedString
Tff7b72import T7ee787androidx.compose.ui.text.LinkAnnotation
Tff7b72import T7ee787androidx.compose.ui.text.SpanStyle
Tff7b72import T7ee787androidx.compose.ui.text.TextLinkStyles
Tff7b72import T7ee787androidx.compose.ui.text.TextStyle
Tff7b72import T7ee787androidx.compose.ui.text.buildAnnotatedString
Tff7b72import T7ee787androidx.compose.ui.text.style.TextDecoration
Tff7b72import T7ee787androidx.compose.ui.text.withLink
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.Preview
Tff7b72import T7ee787androidx.core.text.util.LinkifyCompat
Tff7b72import T7ee787org.meshtastic.core.ui.theme.HyperlinkBlue

Tff7b72private Tff7b72val Te6edf3DefaultTextLinkStyles Tff7b72=
Te6edf3TextLinkStylesTb4b4b4(Te6edf3style Tff7b72= Te6edf3SpanStyleTb4b4b4(Te6edf3color Tff7b72= Te6edf3HyperlinkBlueTb4b4b4, Te6edf3textDecoration Tff7b72= Te6edf3TextDecorationTb4b4b4.Te6edf3UnderlineTb4b4b4)Tb4b4b4)

Tf0883e@Composable
Tff7b72fun Td2a8ffAutoLinkTextTb4b4b4(
Te6edf3textTb4b4b4: Tffa657StringTb4b4b4,
Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4,
Te6edf3styleTb4b4b4: Te6edf3TextStyle Tff7b72= Te6edf3TextStyleTb4b4b4.Te6edf3DefaultTb4b4b4,
Te6edf3linkStylesTb4b4b4: Te6edf3TextLinkStyles Tff7b72= Te6edf3DefaultTextLinkStylesTb4b4b4,
Te6edf3colorTb4b4b4: Te6edf3Color Tff7b72= Te6edf3ColorTb4b4b4.Te6edf3UnspecifiedTb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3spannable Tff7b72= Te6edf3rememberTb4b4b4(Te6edf3textTb4b4b4) Tb4b4b4{ Te6edf3linkifyTb4b4b4(Te6edf3textTb4b4b4) Tb4b4b4}
Te6edf3TextTb4b4b4(Te6edf3text Tff7b72= Te6edf3spannableTb4b4b4.Te6edf3toAnnotatedStringTb4b4b4(Te6edf3linkStylesTb4b4b4)Tb4b4b4, Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4, Te6edf3style Tff7b72= Te6edf3styleTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3color Tff7b72= Te6edf3colorTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tff7b72private Tff7b72fun Td2a8fflinkifyTb4b4b4(Te6edf3textTb4b4b4: Tffa657StringTb4b4b4) Tff7b72= Te6edf3FactoryTb4b4b4.Te6edf3getInstanceTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3newSpannableTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4.Te6edf3also Tb4b4b4{
Te6edf3LinkifyCompatTb4b4b4.Te6edf3addLinksTb4b4b4(Tffa657itTb4b4b4, Te6edf3LinkifyTb4b4b4.Te6edf3WEB_URLS Te6edf3or Te6edf3LinkifyTb4b4b4.Te6edf3EMAIL_ADDRESSES Te6edf3or Te6edf3LinkifyTb4b4b4.Te6edf3PHONE_NUMBERSTb4b4b4)
Tb4b4b4}

Tff7b72private Tff7b72fun Te6edf3SpannableTb4b4b4.Td2a8fftoAnnotatedStringTb4b4b4(Te6edf3linkStylesTb4b4b4: Te6edf3TextLinkStylesTb4b4b4)Tb4b4b4: Te6edf3AnnotatedString Tff7b72= Te6edf3buildAnnotatedString Tb4b4b4{
Tff7b72val Te6edf3spannable Tff7b72= Tff7b72thisTf0883e@toAnnotatedString
Tff7b72var Te6edf3lastEnd Tff7b72= T79c0ff0
Te6edf3spannableTb4b4b4.Te6edf3getSpansTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3spannableTb4b4b4.Te6edf3lengthTb4b4b4, Tffa657AnyTff7b72::Te6edf3classTb4b4b4.Te6edf3javaTb4b4b4)Tb4b4b4.Te6edf3forEach Tb4b4b4{ Te6edf3span Tff7b72-Tff7b72>
Tff7b72val Te6edf3start Tff7b72= Te6edf3spannableTb4b4b4.Te6edf3getSpanStartTb4b4b4(Te6edf3spanTb4b4b4)
Tff7b72val Te6edf3end Tff7b72= Te6edf3spannableTb4b4b4.Te6edf3getSpanEndTb4b4b4(Te6edf3spanTb4b4b4)
Te6edf3appendTb4b4b4(Te6edf3spannableTb4b4b4.Te6edf3subSequenceTb4b4b4(Te6edf3lastEndTb4b4b4, Te6edf3startTb4b4b4)Tb4b4b4)
Tff7b72when Tb4b4b4(Te6edf3spanTb4b4b4) Tb4b4b4{
Tff7b72is Te6edf3URLSpan Tff7b72-Tff7b72>
Te6edf3withLinkTb4b4b4(Te6edf3LinkAnnotationTb4b4b4.Te6edf3UrlTb4b4b4(Te6edf3url Tff7b72= Te6edf3spanTb4b4b4.Te6edf3urlTb4b4b4, Te6edf3styles Tff7b72= Te6edf3linkStylesTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3appendTb4b4b4(Te6edf3spannableTb4b4b4.Te6edf3subSequenceTb4b4b4(Te6edf3startTb4b4b4, Te6edf3endTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tff7b72else Tff7b72-Tff7b72> Te6edf3appendTb4b4b4(Te6edf3spannableTb4b4b4.Te6edf3subSequenceTb4b4b4(Te6edf3startTb4b4b4, Te6edf3endTb4b4b4)Tb4b4b4)
Tb4b4b4}
Te6edf3lastEnd Tff7b72= Te6edf3end
Tb4b4b4}
Te6edf3appendTb4b4b4(Te6edf3spannableTb4b4b4.Te6edf3subSequenceTb4b4b4(Te6edf3lastEndTb4b4b4, Te6edf3spannableTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@PreviewTb4b4b4(Te6edf3showBackground Tff7b72= Tff7b72trueTb4b4b4)
Tf0883e@Composable
Tff7b72private Tff7b72fun Td2a8ffAutoLinkTextPreviewTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3AutoLinkTextTb4b4b4(Ta5d6ff"Ta5d6ffA text containing a link https://example.comTa5d6ff"Tb4b4b4)
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.05s